/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.gob.fonafe.dao.impl.stored;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import oracle.jdbc.OracleTypes;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.StoredProcedure;
import org.springframework.jdbc.core.SqlOutParameter;
import pe.gob.fonafe.domain.FilesConsultaBean;
/**
 *
 * @author Irving
 */
public class ObtenerFilesConsultaReclamoSP extends StoredProcedure{
    
    private static final String PROC_PARAM ="USERGLC.P_OBTENER_FILES_USU_CONSULTA";
    
    public ObtenerFilesConsultaReclamoSP(DataSource ds) {
        super(ds,PROC_PARAM);
        declareParameter(new SqlParameter("P_ID_SUBASTA", Types.NUMERIC));
        declareParameter(new SqlParameter("P_ID_BIEN", Types.NUMERIC));
        declareParameter(new SqlOutParameter("cCursor", OracleTypes.CURSOR,new ObtenerFilesConsultaReclamoRowMapper()));
        compile();
    }
    
    public Map execute(String idSubasta, String idBien) {
        Map inputs = new HashMap();
        inputs.put("P_ID_SUBASTA", Integer.parseInt(idSubasta));
        inputs.put("P_ID_BIEN", Integer.parseInt(idBien));
        return super.execute(inputs);
    }
    
    private static class ObtenerFilesConsultaReclamoRowMapper implements RowMapper<FilesConsultaBean>{
   
        public FilesConsultaBean mapRow(ResultSet rs, int rowNum) throws SQLException {
            FilesConsultaBean bean = new FilesConsultaBean();
            bean.setNombreArchivo(rs.getString("NOMBREARCHIVO"));
            bean.setExtensionArchivo(rs.getString("EXTENSIONARCHIVO"));
            if(rs.getBlob("ARCHIVO") != null){
                bean.setArchivo(rs.getBlob("ARCHIVO").getBytes(1, (int)rs.getBlob("ARCHIVO").length()));
            }
            bean.setId_detalle(rs.getInt("ID_DETALLE_BIEN"));
            bean.setId_bien(rs.getInt("id_bien"));
            bean.setId_consulta(rs.getInt("id_consultas"));
            return bean;     
            
        }
    }
}
